A Graph Transformation Approach to Introducing Aspects into Software Architectures

نویسندگان

  • Md Nour Hossain
  • Wolfram Kahl
  • T. S. E. Maibaum
چکیده

While aspect-oriented programming (AOP) addresses introduction of “aspects” at the code level, we argue that addressing this at the level of software architecture is conceptually more adequate, since many aspects, that is, “crosscutting concerns”, are formulated already in the requirements, and therefore can be dealt with in a more controlled manner in the “earlier” phase of software architecture design. We use Fiadeiro and Maibaum’s [11] precise concept of software architectures organized as diagrams over a category of component specifications, where architecture semantics is defined as the colimit specification of the diagram. The diagram structure suggests aspect introduction via an appropriate variant of graph transformation. Single-pushout rewriting in categories of total homomorphisms has previously already been used for different kinds of “enrichment” transformations; we identify “zigzag-path homomorphisms” as underlying a category where many practically useful aspect introductions turn out to be such single-pushout transformations, and present the relevant theorems concerning pushout existence and pushout construction. Practical aspect introduction (e.g., privacy) always breaks some properties (e.g., “message can be read in transit”); therefore, aspect introduction transformations cannot be designed to be semantics preserving. Our special categorical setting enables selective reasoning about property preservation in the transformed specifications, and property introduction from the introduced aspects. This method enables us to detect and resolve both conflicts and undesirable emergent behaviors that arise from aspect introduction or interaction.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Hybrid Meta-heuristic Approach to Cope with State Space Explosion in Model Checking Technique for Deadlock Freeness

Model checking is an automatic technique for software verification through which all reachable states are generated from an initial state to finding errors and desirable patterns. In the model checking approach, the behavior and structure of system should be modeled. Graph transformation system is a graphical formal modeling language to specify and model the system. However, modeling of large s...

متن کامل

Graph-Based Design and Analysis of Dynamic Software Architectures

We illustrate two ways to address the specification, modelling and analysis of dynamic software architectures using: i) ordinary typed graph transformation techniques implemented in Alloy; ii) a process algebraic presentation of graph transformation implemented in Maude. The two approaches are compared by showing how different aspects can be tackled, including representation issues, modelling p...

متن کامل

Performance Modeling and Analysis of Software Architectures Specified Through Graph Transformations

Software architecture plays an important role in the success of modern, large and distributed software systems. For many of the software systems – especially safety-critical ones – it is important to specify their architectures using formal modeling notations. In this case, it is possible to assess different functional and nonfunctional properties on the designed models. Graph Transformation Sy...

متن کامل

Graph Transformation Based Models of Dynamic Software Architectures and Architectural Styles

Sebastian Thöne ([email protected]) ? International Graduate School of Dynamic Intelligent Systems University of Paderborn, Germany Software architectures play an important role in software development. As abstract models of the run-time structure they help to bridge the gap between user requirements and implementation. In the context of e-business, self-healing, or mobile systems, dynamic architectur...

متن کامل

A Graph Grammar Approach to Software Architecture Verification and Transformation

Software architecture and design are usually modeled and represented by informal diagrams, such as architecture diagrams and UML diagrams. While these graphic notations are easy to understand and are convenient to use, they are not amendable to automated verification and transformation. This paper provides graph grammars for architecture and UML class diagrams. These grammars enable a high leve...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2017